home *** CD-ROM | disk | FTP | other *** search
- %source
- #include <windows.h>
- #include "%l.h"
-
- long FAR PASCAL %cWndProc(HWND, unsigned, WORD, LONG);
- BOOL FAR PASCAL TextEnterBoxFunc(HWND, unsigned, WORD, LONG);
-
-
- static HBRUSH hbrBlack;
- static HANDLE hAccelTable;
- static HANDLE hInst;
-
- HWND hWindow;
-
-
- char %ltext[LINESIZE];
-
- /*
- Standard Windows feature. About box tells you something about the
- application
- */
-
- BOOL FAR PASCAL About( hDlg, message, wParam, lParam )
- HWND hDlg;
- unsigned message;
- WORD wParam;
- LONG lParam;
- {
- if (message == WM_COMMAND) {
-
- EndDialog( hDlg, TRUE );
- return TRUE;
- }
- else if (message == WM_INITDIALOG)
- return TRUE;
- else return FALSE;
- }
-
-
- void %cPaint(hDC)
- HDC hDC;
- {
- TextOut(hDC,0,0,%ltext,strlen(%ltext));
- }
-
-
- void GetText(hWnd)
- HWND hWnd;
- {
- FARPROC lpprocTextEnterBoxFunc;
- BOOL i;
-
- lpprocTextEnterBoxFunc = MakeProcInstance ((FARPROC)TextEnterBoxFunc, hInst);
- i = DialogBox(hInst, (LPSTR)"TextEnterBox", hWnd, lpprocTextEnterBoxFunc);
- FreeProcInstance((FARPROC)lpprocTextEnterBoxFunc);
-
- if (i == TRUE) {
- InvalidateRect (hWnd, (LPRECT) NULL, (BOOL) TRUE);
- }
- }
-
-
- void %cCommand(hWnd, id)
- HWND hWnd;
- int id;
- {
- HDC hDC;
- FARPROC lpprocAbout;
- char wbuffer[80];
-
- switch (id) {
- case ID_EXIT:
- exit(id);
- break;
-
- case ID_ABOUT:
- lpprocAbout = MakeProcInstance ((FARPROC)About, hInst);
- DialogBox(hInst, (LPSTR)"About", hWnd, lpprocAbout);
- FreeProcInstance((FARPROC)lpprocAbout);
- break;
-
- case ID_%u:
- GetText(hWnd);
- break;
-
- default:
- break;
- }
- }
-
-
- /* Procedure called every time a new instance of the application
- ** is created */
-
- int PASCAL WinMain(hInstance, hPrevInstance, lpszCmdLine, cmdShow)
- HANDLE hInstance, hPrevInstance;
- LPSTR lpszCmdLine;
- int cmdShow;
- {
- MSG msg;
- HWND hWnd;
- HMENU hMenu;
- int i;
-
- if (!hPrevInstance) {
- if (!%cInit(hInstance))
- return FALSE;
- }
- else {
- GetInstanceData(hPrevInstance, (PSTR)&hbrBlack, sizeof(hbrBlack));
- GetInstanceData(hPrevInstance, (PSTR)&hAccelTable, sizeof(hAccelTable));
- }
-
- hWnd = CreateWindow((LPSTR) "%c",
- (LPSTR) "%c",
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- (HWND)NULL,
- (HMENU)NULL,
- (HANDLE)hInstance,
- (LPSTR)NULL);
- /* initialize various things */
-
- hWindow = hWnd;
- hInst = hInstance;
-
- /*
- Code to append About box to system menu removed here
- The About box is now the user's responsibility
- */
-
- ShowWindow(hWnd, cmdShow);
- UpdateWindow(hWnd);
-
- /*
- This is the classic loop
- */
-
- while (GetMessage((LPMSG)&msg, NULL, 0, 0)) {
- if (TranslateAccelerator(hWnd, hAccelTable, (LPMSG)&msg) == 0) {
- TranslateMessage((LPMSG)&msg);
- DispatchMessage((LPMSG)&msg);
- }
- }
- exit(msg.wParam);
- return(0);
- }
-
- int %cInit(hInstance)
- HANDLE hInstance;
- {
- PWNDCLASS p%cClass;
-
- /* set up some default brushes */
- hbrBlack = GetStockObject(BLACK_BRUSH);
-
- p%cClass = (PWNDCLASS)LocalAlloc(LPTR, sizeof(WNDCLASS));
- p%cClass->hCursor = LoadCursor(NULL, IDC_ARROW);
- p%cClass->hIcon = LoadIcon(hInstance, (LPSTR)"%c");
- p%cClass->lpszMenuName = (LPSTR)"MainMenu";
- p%cClass->lpszClassName = (LPSTR)"%c";
- p%cClass->hbrBackground = NULL;
- p%cClass->hInstance = hInstance;
- p%cClass->style = CS_VREDRAW | CS_HREDRAW;
- p%cClass->lpfnWndProc = %cWndProc;
-
- if (!RegisterClass((LPWNDCLASS)p%cClass))
- return FALSE;
-
- LocalFree((HANDLE)p%cClass);
- hAccelTable = LoadAccelerators(hInstance, (LPSTR)"%caccel");
- return TRUE;
- }
-
- /* Procedures which make up the window class. */
- long FAR PASCAL %cWndProc(hWnd, message, wParam, lParam)
- HWND hWnd;
- unsigned message;
- WORD wParam;
- LONG lParam;
- {
- PAINTSTRUCT ps;
- RECT rect;
- HBRUSH hbr, hbrOld;
- POINT pt;
-
-
- switch (message)
- {
- case WM_SYSCOMMAND:
- switch (wParam) {
- default:
- return(DefWindowProc(hWnd, message, wParam, lParam));
- }
-
- case WM_CREATE:
- break;
-
- case WM_LBUTTONDOWN:
- case WM_RBUTTONDOWN:
- case WM_LBUTTONDBLCLK:
- case WM_RBUTTONDBLCLK:
- break;
- case WM_MOUSEMOVE:
- break;
- case WM_LBUTTONUP:
- case WM_RBUTTONUP:
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
-
- case WM_COMMAND:
- %cCommand(hWnd, wParam);
- break;
-
- case WM_PAINT:
- BeginPaint(hWnd, (LPPAINTSTRUCT)&ps);
- %cPaint(ps.hdc);
- EndPaint(hWnd, (LPPAINTSTRUCT)&ps);
- break;
-
- case WM_ERASEBKGND:
- GetClientRect(hWnd, (LPRECT)&rect);
- hbr = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
- hbrOld = SelectObject((HDC)wParam, hbr);
- FillRect((HDC)wParam, (LPRECT)&rect, hbr);
- SelectObject((HDC)wParam, hbrOld);
- DeleteObject(hbr);
- break;
-
-
- default:
- return(DefWindowProc(hWnd, message, wParam, lParam));
- }
-
- return(0L);
- }
-
-
- void GrabText(hDlg,name,id,size)
- HWND hDlg;
- char name[];
- short id;
- short size;
- {
- short i;
-
- strcpy(name,"");
- i = GetDlgItemText(hDlg,id,(LPSTR)name, size);
- name[i] = 0;
-
-
- }
-
-
- BOOL FAR PASCAL TextEnterBoxFunc(hDlg, message, wParam, lParam)
- HWND hDlg;
- unsigned message;
- WORD wParam;
- LONG lParam;
- {
- switch(message)
- {
- case WM_INITDIALOG:
- SetFocus(GetDlgItem(hDlg, ID_TEXT));
- return(FALSE);
- case WM_COMMAND:
- switch(wParam)
- {
- case ID_OK:
- GrabText(hDlg,%ltext,ID_TEXT,LINESIZE);
- EndDialog(hDlg, TRUE);
- return(TRUE);
- case ID_CANCEL:
- EndDialog(hDlg,FALSE);
- return(FALSE);
- default:
- return(FALSE);
- }
- default:
- return(FALSE);
- }
- }
-
-
- %end
- %include
- #define LINESIZE 80
-
-
- /* Menu choice to display the About dialog box */
-
- #define ID_ABOUT 0x100
-
- /* Menu choice to display the text */
-
- #define ID_%u 0x200
-
- /* Menu choice to exit the application */
-
- #define ID_EXIT 0x300
-
- /* Dialog box control identifiers */
-
- #define ID_ETEXT 0x400
- #define ID_TEXT 0x401
- #define ID_OK 0x402
- #define ID_CANCEL 0x403
-
- %end
- %def
-
- NAME %c
- DESCRIPTION '%d'
-
- CODE MOVEABLE
- DATA MOVEABLE MULTIPLE
-
- STUB 'WINSTUB.EXE'
-
- EXETYPE WINDOWS
-
- HEAPSIZE 1024
- STACKSIZE 4096
-
- EXPORTS
- %cWndProc
- About
- TextEnterBoxFunc
- %end
- %resource
- #include "windows.h"
- #include "%l.h"
-
- %l ICON %l.ico
-
- MainMenu MENU
- BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "&Exit", ID_EXIT
- MENUITEM "&About This Application", ID_ABOUT
- END
- MENUITEM "&Get Text", ID_%u
- END
-
-
- About DIALOG LOADONCALL MOVEABLE DISCARDABLE 22, 17, 144, 85
- STYLE WS_POPUP | WS_DLGFRAME
- BEGIN
- CTEXT "%c" -1, 38, 10, 68, 8
- ICON "%l" -1, 9, 5, 18, 28
- CTEXT "%d" -1, 0, 33, 144, 8
- CTEXT "Version 1.00" -1, 0, 43, 144, 8
- CTEXT "Copyright (c) 1991 by %n" -1, 0, 53, 144, 9
- DEFPUSHBUTTON "Ok" ID_OK, 53, 67, 32, 14, WS_GROUP
- END
-
- TEXTENTERBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 66, 52, 155, 69
- STYLE WS_DLGFRAME | WS_POPUP
- BEGIN
- CONTROL "Enter text:" ID_ETEXT, "static", SS_LEFT | WS_CHILD, 15, 10, 124, 16
- CONTROL "" ID_TEXT, "edit", ES_LEFT | WS_BORDER | WS_TABSTOP | WS_CHILD, 15, 22, 126, 12
- CONTROL "OK" ID_OK, "button", BS_DEFPUSHBUTTON | WS_TABSTOP | WS_CHILD, 30, 46, 31, 14
- CONTROL "Cancel" ID_CANCEL, "button", BS_PUSHBUTTON | WS_TABSTOP | WS_CHILD, 87, 46, 31, 14
- END
- %end
- %make
- ALL: %l.exe
-
- %l.obj: %l.c %l.h
- cl -d -c -AM -Gsw -Oas -Zpe -Fl %l.obj %l.c
-
- %l.exe: %l.obj %l.def
- link %l , %l /align:16,%l/map, mlibcew libw ,%l.def;
- rc %l
-
- %end
-